package Test;

import java.util.ArrayList;
import java.util.Map;
import java.util.TreeMap;

public class Test5 {
    /*  5. 集合操作题：统计列表中数字出现次数
题目：使用Java集合（如List、Map）实现：
（1）创建一个包含多个整数的List（可手动初始化或输入）；
（2）统计List中每个数字出现的次数，用Map存储（键为数字，值为次数）；
（3）输出Map中次数最多的数字及其次数（若有多个并列，输出任意一个即可）。    */
    public static void main(String[] args) {
        ArrayList<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(1);
        list.add(2);
        list.add(2);
        list.add(3);
        list.add(3);
        list.add(3);
        int[] arr = count(list);
        Map<Integer, Integer> map = new TreeMap<>();
        for (int i = 0; i < arr.length; i++) {
            map.put(i,arr[i]);
            System.out.println(arr[i]);
        }
        System.out.println(map);

    }


    //定义一个方法，统计每个集合出现的数字次数
    public static int[] count(ArrayList<Integer> list) {
        int[] arr = new int[10];//定义一个数组
        for (int i = 0; i < list.size(); i++) {
            Integer num = list.get(i);//得到集合里的每一个元素
            for (int j = 0; j < arr.length; j++) { //遍历每一个数组,j表示数组的索引
                if (num - 48 == j) {      //  0 的asc码为48
                    arr[j] = arr[j] + 1;//数字出现一次，数组上的数字加1
                }
            }
        }
        return arr;
    }
}
